#include <bits/stdc++.h>
using namespace std;
/*同时对头尾进行扫描，
（1）头大于尾，从尾前找一位借位，同时置尾为头；头小于尾，直接置尾为头；
（2）若借位的那一位为0的，则继续借位；
（3)若出现极端情况如10000，则直接置尾为9，跳出循环即可*/

string n;
int main()
{
    cin >> n;
    while (n[0] == '0')
        n.erase(0, 1);
    int len = n.length() / 2;
    for (int i = 0, j = n.length() - 1; i <= len - 1; i++, j--)
    {
        if (n[i] > n[j])//头大于尾
        {
            int k = j - 1;//尾前一位
            while (k > 0 && n[k] == '0')//借位
                n[k--] = '9';
            n[k]--;//前一位减一
            if (k == 0 && n[k] == '0')//情况三
            {
                n[j] = '9';
                n.erase(0, 1);
                break;
            }
        }
		//头小于等于尾，前半部分等于后半部分
        n[j] = n[i];
    }
    cout << n;
    return 0;
}

